package modelo.persistir;

import java.util.ArrayList;

import modelo.centrales.CentralElectrica;
import modelo.edificios.Edificio;
import modelo.edificios.EdificioIndustrial;
import modelo.interfaces.Persistible;
import modelo.mapa.Ubicacion;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;

public class EdificioPersitir {
	
	public static JsonObject persistir(ArrayList elems)
	{
		Gson gson = new Gson();
		JsonObject jObject=new JsonObject();
		 jObject.addProperty("Vida" ,(int) elems.get(0));
		 jObject.addProperty("Consumo" , (int) elems.get(1));
		 jObject.addProperty("CapacidadAlojamientoActual", (int)elems.get(2));
		 Ubicacion ubi=(Ubicacion)elems.get(3);
		 JsonObject aa=UbicacionPersistir.persistir(ubi.obtenerDatosPersistibles());
		 jObject.add("Ubicacion",aa );
		 return jObject;
	}

	public static JsonElement persistirArray(ArrayList listadoDeEdificiosIndustriales) 
	{
		Gson gson = new Gson();
		JsonArray jArray=new JsonArray();		
		JsonObject jObject=new JsonObject();
		ArrayList<Edificio> listado=(ArrayList<Edificio>)listadoDeEdificiosIndustriales;
		for(Edificio edi:listado){
			jArray.add(EdificioPersitir.persistir(edi.obtenerDatosPersistibles()));
		}
		return jArray;
	}

	public static ArrayList cargar(String comp) 
	{
		ArrayList lista=new ArrayList();
		JsonParser parser = new JsonParser();
		JsonObject carg = parser.parse(comp).getAsJsonObject();		
		lista.add(carg.get("Vida").getAsInt());
		lista.add(carg.get("Consumo").getAsInt());
		lista.add(carg.get("CapacidadAlojamientoActual").getAsInt());
		String ubi=carg.get("Ubicacion").toString();
		ArrayList ubicacion = UbicacionPersistir.cargar(ubi);
		Ubicacion ubicacionFin=new Ubicacion(0,0);
		ubicacionFin.poblar(ubicacion);
		lista.add(ubicacionFin);
		return lista;
	}
}
